package com.telit.firecommand.service;

import com.telit.firecommand.entity.CommFireAlarm;
import com.telit.firecommand.entity.FileUploadLog;

import javax.servlet.http.HttpServletRequest;
import java.util.List;


/**
 * @author chencf
 * @description 火情管理接口
 */
public interface FireManagerService {

    /**
     * 添加火情
     * @param commFireAlarm
     * @param httpServletRequest
     * @return
     */
    void addFire(CommFireAlarm commFireAlarm, HttpServletRequest httpServletRequest) throws Exception;


    /**
     * 设为重复火情
     * @param sourceFireId 源火情
     * @param repeatFireId 待合并火情
     * @param httpServletRequest
     * @return
     */
    void setAsRepeatedFire(Long sourceFireId, Long repeatFireId, HttpServletRequest httpServletRequest);

    /**
     * 火情确认
     * @param fireId 火情id
     * @param confirmType 确认类型 1确认火情 2确认误报 3设为应急演练
     * @param description 误报说明
     * @param httpServletRequest
     * @return
     */
    void confirmFire(Long fireId, String confirmType, String description, String mediaUrl, String faketype, HttpServletRequest httpServletRequest);

    /**
     * 火情上报
     * @param fireId 火情id
     * @param httpServletRequest
     * @return
     */
    void reportToSuperior(Long fireId, HttpServletRequest httpServletRequest);

    /**
     * 火情状态修改
     * @param fireId
     * @param status
     * @param httpServletRequest
     * @return
     */
    void changeFireStatus(Long fireId, String status, HttpServletRequest httpServletRequest);

    /**
     * 火情判别
     * @param fireId
     * @param fireJudgmentType
     */
    void judgmentCameraFindFire(Long fireId, Integer fireJudgmentType) throws Exception;

    /**
     * 更新火情地区信息
     *
     * @param commFireAlarm
     * @param httpServletRequest
     */
    void updateFireRegionalInfo(CommFireAlarm commFireAlarm, HttpServletRequest httpServletRequest);

    /**
     * 保存火情图片
     *
     * @param fireFiles 文件
     */
    void saveFireFiles(List<FileUploadLog> fireFiles);

    /**
     * 修改火情信息
     */
    void updateFireInfo(CommFireAlarm commFireAlarm);

}
